D Language wrappers for the HDF5 Library. (Paired with a set of lower-level bindings) https://github.com/Laeeth/d_hdf5

No restriction on use beyond those applying from HDF5 and the original C API by Stefan Frijters However, if you use them, I would not mind knowing your application and suggestions for improvement if you feel like sharing. laeeth@laeeth.com

Copyright by The HDF Group. * Copyright by the Board of Trustees of the University of Illinois. * All rights reserved. * * This file is part of HDF5. The full HDF5 copyright notice, including * terms governing use, modification, and redistribution, is contained in * the files COPYING and Copyright.html. COPYING can be found at the root * of the source code distribution tree; Copyright.html can be found at the * root level of an installed copy of the electronic HDF5 document set and * is linked from the top-level documents page. It can also be found at * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * access to either file, you may request a copy from help@hdfgroup.org. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Ported to D by Laeeth Isharc 2014 Borrowed heavily in terms of C API declarations from https://github.com/SFrijters/hdf5-d Stefan Frijters bindings for D

I do not think these are complete, and I also wanted to begin to work on a higher level D interface. Initially just using strings instead of chars, for example. And exceptions instead of checking status code each time. Later will add a higher level interface similarly to how it is done in h5py.

Consider this not even alpha stage. It probably isn't so far away from being useful though. This is written for Linux and will need modification to work on other platforms.


Detailed Description

To Do: 1. Better exception handling that calls HDF5 to get error and returns appropriate Throwable object 2. Unit tests 3. Thoughtfulness about using D CFTE/reflection/templating to make it work better - also variants etc should be able to pass the data structure not cast(ubyte*) should automatically use reflection to deal with structs etc